package com.keba.lamp.complaint.service;

import com.keba.lamp.complaint.service.impl.PdfCommonServiceImpl;
import com.keba.lamp.complaint.vo.result.CaseFileResultVO;
import com.keba.lamp.complaint.vo.result.CaseResultVO;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;

public interface PdfCommonService {

    void createCasePdf(CaseResultVO caseResultVO, OutputStream outputStream, String fileType) throws Exception;

    List<PdfCommonServiceImpl.StreamResult> createPlaintffPdf(CaseResultVO caseResultVO);

    List<PdfCommonServiceImpl.StreamResult> createDefendantPdf(CaseResultVO caseResultVO);

    void createEvidenceZip(CaseResultVO caseResultVO, OutputStream outputStream) throws IOException;

    ByteArrayOutputStream createFileZip(List<CaseFileResultVO> fileList) throws IOException;

    ByteArrayOutputStream createFileZipByFileIdList(List<Long> fileIdList) throws IOException;

    void createEvidencePdf(CaseResultVO caseResultVO, OutputStream outputStream, String fileType) throws Exception;

    /**
     * 生成案件资料包
     * @param caseResultVO
     * @param outputStream
     * @throws Exception
     */
    void createCaseZip(CaseResultVO caseResultVO, OutputStream outputStream) throws Exception;

    /**
     * 生成案件资料包并上传oss
     * @param caseResultVO
     * @return
     * @throws Exception
     */
    String uploadCaseZip(CaseResultVO caseResultVO) throws Exception;
}
